package org.dromara.bclt.websocket.service;

import org.dromara.bclt.websocket.domain.ChatMessage;
import java.util.List;

/**
 * 聊天服务接口
 */
public interface ChatService {

    /**
     * 发送消息
     *
     * @param chatMessage 聊天消息
     * @return 是否发送成功
     */
    boolean sendMessage(ChatMessage chatMessage);

    /**
     * 获取聊天历史记录
     *
     * @param userId1 用户1
     * @param userId2 用户2
     * @param limit   记录数量
     * @return 聊天记录列表
     */
    List<ChatMessage> getChatHistory(Long userId1, Long userId2, Integer limit);

    /**
     * 将消息标记为已读
     *
     * @param senderId   发送者ID
     * @param receiverId 接收者ID
     * @return 更新记录数
     */
    int markMessageAsRead(Long senderId, Long receiverId);

    /**
     * 获取未读消息数量
     *
     * @param receiverId 接收者ID
     * @return 未读消息数量
     */
    int getUnreadMessageCount(Long receiverId);
} 